import request from '@/config/axios'

// 用户信息精简 VO
import type { UserVO } from '@/api/system/user'

// 项目成员 VO
export interface ProjectMemberVO {
  id: number
  projectId: number
  memberId: number
  role: string
  joinTime: Date
  userInfo: UserVO
}

// 项目信息 VO
export interface ProjectVO {
  id: number // ID
  name: string // 项目名称
  description: string // 项目描述
  startDate: Date // 开始时间
  endDate: Date // 结束时间
  state: string // 状态
  available: string // 是否隐藏
  managerId: number // 负责人ID
  manager?: UserVO // 负责人信息
  members?: ProjectMemberVO[] // 项目成员列表
}

// 项目信息 API
export const ProjectApi = {
  // 查询项目信息分页
  getProjectPage: async (params: any) => {
    return await request.get({ url: `/pypm/project/page`, params })
  },

  // 查询项目信息详情
  getProject: async (id: number) => {
    return await request.get({ url: `/pypm/project/get?id=` + id })
  },

  // 新增项目信息
  createProject: async (data: ProjectVO) => {
    return await request.post({ url: `/pypm/project/create`, data })
  },

  // 修改项目信息
  updateProject: async (data: ProjectVO) => {
    return await request.put({ url: `/pypm/project/update`, data })
  },

  // 删除项目信息
  deleteProject: async (id: number) => {
    return await request.delete({ url: `/pypm/project/delete?id=` + id })
  },

  // 导出项目信息 Excel
  exportProject: async (params) => {
    return await request.download({ url: `/pypm/project/export-excel`, params })
  }
}